import logging
# def test_logging():
#     # logging.debug('Python debug')
#     logging.info('Python info')
#     # logging.warning('Python warning')
#     # logging.error('Python Error')
#     # logging.critical('Python critical')
#
# test_logging()
# #　打印日志级别
# def test():
#     logging.basicConfig(level=logging.DEBUG)
#     logging.debug('Python debug')
#     logging.info('Python info')
#     logging.warning('Python warning')
#     logging.error('Python Error')
#     logging.critical('Python critical')
#     logging.log(2,'test')
# test()

#　打印日志级别 logging.basicConfig() 配置
# def test():
#     logging.basicConfig(level=logging.CRITICAL)
#     logging.debug('Python debug')
#     logging.info('Python info')
#     logging.warning('Python warning')
#     logging.error('Python Error')
#     logging.critical('Python critical')
#     logging.log(2,'test')
# test()

# 日志信息记录到文件
# logging.basicConfig(filename='example.log', level=logging.DEBUG)
# logging.debug('This message should go to the log file')
# logging.info('So should this')
# logging.warning('And this, too')

# 多个模块记录日志
# import mylib
# def main():
#     logging.basicConfig(filename='myapp.log',level=logging.DEBUG)
#     logging.info('Started')
#     mylib.do_something()
#     logging.info('Finished')
#
# if __name__ == '__main__':
#     main()

# 显示消息日期
# logging.basicConfig(format='%(asctime)s %(message)s')
# logging.warning('is when this event was logged.')
#
# logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
# logging.warning('is when this event was logged.')

#　更改显示消息的格式
# logging.basicConfig(format='%(levelname)s:%(message)s',level=logging.DEBUG)
# logging.debug('Python message format Debug')
# logging.info('Python message format Info')
# logging.warning('Python message format Warning')

'''
应用程序代码能直接调用日志接口。
Logger最常用的操作有两类：配置和发送日志消息。
初始化 logger = logging.getLogger(“endlesscode”)，获取 logger 对象，getLogger() 方法后面最好加上所要日志记录的模块名字，
配置文件和打印日志格式中的 %(name)s 对应的是这里的模块名字，如果不指定name则返回root对象。
logger.setLevel(logging.DEBUG)，Logging 中有 NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL这几种级别，日志会记录设置级别以上的日志
多次使用相同的name调用 getLogger 方法返回同一个 looger 对象
'''
logger = logging.getLogger("adwa")


'''
日志器（logger）需要通过处理器（handler）将日志信息输出到目标位置，不同的处理器（handler）可以将日志输出到不同的位置；
日志器（logger）可以设置多个处理器（handler）将同一条日志记录输出到不同的位置；
每个处理器（handler）都可以设置自己的过滤器（filter）实现日志过滤，从而只保留感兴趣的日志；
每个处理器（handler）都可以设置自己的格式器（formatter）实现同一条日志以不同的格式输出到不同的地方。
简明了说就是：日志器（logger）是入口，真正干活儿的是处理器（handler），处理器（handler）还可以通过过滤器（filter）和格式器（formatter）对要输出的日志内容做过滤和格式化等处理操作。

Logger 可以包含一个或多个 Handler 和 Filter
Logger 与 Handler 或 Fitler 是一对多的关系
一个 Logger 实例可以新增多 个 Handler，一个 Handler 可以新增多个格式化器或多个过滤器，而且日志级别将会继承。
'''